<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>DonReY Framework :: Preface</title>
<link rel='stylesheet' type='text/css' href='/Documentation/DonReY.css' media='screen' />
</head>
<body>
<a href="/documentation/donrey.html" title="DonReY Framework Documentation">DonReY Framework Documentation</a> &raquo; Preface
<hr />
	<h2>Preface</h2>

	<p>Welcome to a fresh way to create websites and other <span class="caps">PHP</span> powered web-based projects !<br />
DonReY framework was created by an enthusiast who truly loves the endless possibilities of simple web programming. It is true, there are countless other frameworks and <span class="caps">CMS</span>&#8217;es, each one with their strengths and weaknesses, but that is actually a good thing ! It allows you, the developer, to choose that&#8217;s best suited for what you want to acomplish.</p>

	<p>Since you&#8217;re reading this, it means that you&#8217;re curious what DonReY offers, and I truly wish you have a good experience with using it, because much love and work was put into creating it !</p>

	<h3>History</h3>

	<p>Although this incarnation of DonReY is quite young ( at the moment of writing this page, the code repository is barely two months old ), this framework is not that new. It existed under different names and concept codes for many years ( since around 2004 ). In all this time it evolved, ideas were improved, old code was rewritten for more efficiency and ease of use, some ideas were scrapped, others were born. And this version is not the end, in time as web development progresses, DonReY will evolve with it. Maybe even change name again someday :)</p>

	<p><strong>How DonReY came to be:</strong></p>

	<ul>
		<li><strong>2004-2006</strong> : Under the name <strong><span class="caps">WAMIS</span></strong> ( acronym for Web Application Modular Integration System ), it appeared as a small collection of code in PHP4 classes that helped solve very common tasks ( like accessing a database, verifying form input, dividing website code into sections for easier management ). Those classes were called <em>Wamis Modules</em> and they all derived from one class called <em><span class="caps">WAMIS</span> Central Control</em> ). This set of files were copied for every project, and all were included at once by the <em>Central Control</em> (even if used or not). The required <span class="caps">PHP</span> version was 4.x<br />
<span class="caps">WAMIS</span> helped construction of around 15 websites during this time, including two big websites, one for a local newspaper and another a romanian &#8220;social network&#8221; for mechanical engineers.</li>
		<li><strong>2006-2007</strong> : While working for a company, Wavetrex has helped developing a complex <span class="caps">CMS</span> named <strong>Evolution 3</strong> It was a rewrite from scratch (almost no connection to Evolution 2, except for interface design, and it included concepts from <span class="caps">WAMIS</span>, like the independent modules (which Evo2 did not have). <em>Evo3</em> included many modules, and a Kernel which in time unfortunately grew too large, it included so many functions that it reached over 5000 lines of code on it&#8217;s own. What was new in Evo3 is the &#8220;single location&#8221; concept for this <span class="caps">CMS</span> ( once copy per server, multiple projects ), and a set of <span class="caps">INI</span> configuration files inside the project&#8217;s folders. Evo3 used <em><span class="caps">PEAR</span></em> classes for lots of functionality, and was not very fast because of this. <br />
There were over 20 projects built using Evolution, including for some large clients like the dutch <span class="caps">XENOS</span> supermarket-chain</li>
		<li><strong>2008-2009</strong> : After leaving that company, Wavetrex has restarted working on <span class="caps">WAMIS</span>, but changed it&#8217;s name to <strong>Hydra</strong> (The name was inspired from the mythic beast Hydra, which had many heads and one body). Evolution 3&#8217;s code was scrapped, first reason being that it was commercial, not open-source, and second&#8230; that many people have worked on it and it became severly bloated. Hydra featured &#8220;single location&#8221; concept, and also a dynamic loader like Evo3, however the <em>Hydra Core</em> was kept very small, having only required functions to load other modules. During the time of Hydra development, a new strong framework appeared, <em>Zend Framework</em>. While being very good ( and used by a lot of people today, Wavetrex has decided against using an existing framework to build a <span class="caps">CMS</span> on top of it, and instead worked on creating completely independent root code. Ideas however were borrowed from Z.F., for example during creation of Hydra, the module <em>QueryConstructor</em> appeared which features similar syntax with <em>Zend DB Select</em>. However, while the Z.F. version only supports Selects, Hydra&#8217;s, QC had syntax for both update/insert and delete.<br />
Only around 5 projects were created using Hydra, mostly because of the lack of time.</li>
		<li><strong>2009-2012</strong>: After a long session of brainstorming, Hydra was renamed into <strong>DonReY</strong> ( <strong>Don</strong>&#8217;t <strong>Re</strong>peat <strong>Y</strong>ourself ). DonReY ( or <strong><span class="caps">DRY</span></strong> ) introduced the concept of inter-module communication, in which complex modules don&#8217;t attempt to solve all problems on their own, but instead they asks other modules to perform tasks for them. DonReY code has become smaller, with very little repetition, faster and modern, and after suffering many transformations (both refactoring and rewrites), it reached it&#8217;s current form. The new <span class="caps">PHP</span> minimum version is 5.3 (Hydra and earlier worked with php 5.1 or 5.2). DonReY also increased flexibility in a major way, by using a bootstrapper code and rich configuration file (<span class="caps">XML</span>), every name, location, connection or feature can be set, making the organization of the project&#8217;s code as free as the creator wishes. There is however a &#8220;suggested&#8221; way of building projects. <br />
Unfortunately, during this time due to time and money restraints, progress has been slow so while DonReY has been used and is being used in serveral projects, it is still far from reaching it&#8217;s full potential. Hopefully with more programmers contributing it will pick up pace.<br />
In April 2009 the domain name <strong>donrey.net</strong> was also registered, with the intention of making DonReY an Open Source project.</li>
	</ul>

	<h3>Authors and contributors</h3>

	<p>Currently, DonReY framework is maintained by one person: Wavetrex (<a href="mailto:wavetrex@gmail.com">wavetrex@gmail.com</a>), known outside the internetz as Alin Voiculescu, from Romania.<br />
If you wish to participate in this project and think you have something to contribute, write an e-mail to Wavetrex.</p>

	<p>Thank you !</p>
</body>
</html>
<!-- http://www.donrey.net/Documentation - Built with DonReY Framework http://www.donrey.net/ - Powered by PHP, MySQL, JavaScript -->